固件提取 您所在的位置:网站首页 linux 路由器固件bin 固件提取

固件提取

#固件提取| 来源: 网络整理| 查看: 265

固件 路由flash 固件提取 固件模拟 flash

固件

固件:也称 firmware, 通常用于嵌入式领域,泛指运行于硬件之上的操作系统软件。刷固件或者更新固件是指删除原系统,更换新的系统软件。

image-20201206114644255

包括

uboot引导系统,加载环境变量 kernel内核 fs文件系统,应用程序 固件在无线路由器出厂的时候通常封装在一个flash集成电路里, 现在的flash集成电路通常采用8脚封装,也有更多针脚的, 它焊接在路由器的主板上,相当于台式电脑的硬盘。

路由器FLASH flash相关了解

FLASH也叫闪存,是路由器中常用的一种内存类型。它是可读写的存储器,在系统重新启动或关机之后仍能保存数据。 FLASH中存放着当前正在使用的路由器操作系统等信息路由器的FLASH就像计算机的硬盘。我们的硬盘通常会被格式化成多个分区。同样的原理, FLASH也被格式化为多个分区。通常情况下, FLASH分成4个区块,其作用大致如下。

bootloader:主要功能是对硬件环境进行初始化、更新固件及认识操作系统的文件格式并将内核加载到内存中去执行。Kemel:操作系统的内核。Root Filesystem:操作系统的根文件系统,如squashfs, rootfs等。NVRAM:作用是保存路由器中的配置文件。路由器在启动之后从NVRAM中读取配置文件,对路由器进行设置。用户修改路由器设置后,系统会将修改后的参数写回NVRAM中。

一般路由器需要一个bootloader来启动,一开始上电启动的时候,从0x00开启运行代码,这个bootloader代码一般是可写的,不是固化在ROM里的,是烧写在flash里面的。Flash中存放着当前使用中的IOS(路由器操作系统)。

固件提取

先获取固件,一般是bin文件

1.官网或售后获取固件 2.从第三方网站或者专门的人获取固件 3.抓取升级包的地址 4.逆向升级软件获取升级接口 5.使用编程器从Flash中读取固件 6.通过调试接口,进入设备提取固件

binwalk提取bin文件的文件系统 binwalk -Me bin

flash里面可以提取到文件系统

文件系统里面就会有服务端的应用程序,二进制代码,密钥什么的。

常见的文件系统

F2FS LogFS RomfsRomf YAFFS2 AXFS Btrfs InitRAMFS0 NFS SquashFS CramFS JFFS2 PRAMFS UBIFS 固件模拟

windows一般采用是x86-64架构,但是路由器一般是mips和arm架构。

所以windows不能直接运行路由器的固件

mips是一种采取精简指令集(RISC)的处理器架构

mipsel是little-endian的mips架构,这个一般就成为mipsel mips是big-endian的mips架构,这就是俗称的mips big

ARM架构,过去称作高级精简指令集机器(Advanced RISC Machine,更早称作:Acorn RISC Machine),是一个32位精简指令集(RISC)处理器架构,其广泛地使用在许多嵌入式系统设计。

qemu

QEMU是一种模拟处理器

安装

sudo apt-get install qemu-system-arm qemu-system-mips qemu-system-x86 qemu-utils

sudo apt-get install qemu

sudo apt-get install qemu-user-static

两种使用方法

一是作为用户态模拟器,利用动态代码翻译机制来执行不同于主机架构的代码。

qemu-mipsel [options] program [arguments...] sudo chroot . ./qemu-mipsel-static /bin/busybox echo 'aa'

二是作为虚拟机监管器,模拟全系统

qemu-system-mipsel [options] [disk_image] flash Flash内存即闪存,是可读可写的存储器, 在系统重新启动或关机之后仍能保存数据。 flash存储器的主要特点是 在不加电的情况下能长期保持存储的信息。 RAM芯片失电后数据会丢失 ROM以非破坏性读出方式工作,只能读出无法写入信息。 信息一旦写入后就固定下来,即使切断电源, 信息也不会丢失,所以又称为固定存储器。 它既有ROM的特点,又有很高的存取速度, 而且易于擦除和重写, 功耗很小。 flash分为两种,NorFlash与NandFlash

Nor Flash 的特点是芯片内执行和不能直接写操作,程序可以直接在其中运行,而不必将程序读取到RAM 中运行。

Nand Flash 的特点是采用非线性存储模式,程序无法在其中运行,它只能作为程序或数据的存储载体,存储在其中的程序只能先拷贝到RAM 中才能运行。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有